<script>

    const p = new Promise((resolve, reject) => {
        setTimeout(() => {
            reject(2)
        }, 2000)
    })

    // try {
    //     // 这里放可能在执行中报错的代码
    //     // 如果报错会终止代码继续执行, 直接跳转进catch里执行
    // } catch (err) {
    //     // err接收try大括号内报错抛出的异常代码
    // }
    // 
    // await只能拿成功状态的promise的值，如果遇到了失败状态的promise，就要 try ... catch 
    async function myFn(){
        try {
            const result = await p
            console.log('result', result)
        } catch(err){
            console.log('err', err)
        } 
    }

    myFn()
    

// console.log(1);
// async function myFn() {
//     console.log(2)
//     const res = await 3 // Promise.resolve(3)
//     console.log(res);
// }

// console.log(5);
// // async修饰的函数是异步的
// // 进入函数内部，执行代码一直到遇到await，就跳出
// // 继续执行这个函数之后的代码
// myFn()
// console.log(6);


// console.log(1);
// console.log(5);
// setTimeout(()=>{ console.log(3)})
// console.log(6);

</script>